#ifndef _FLOWER_DISK_SAMPLER_H_
#define _FLOWER_DISK_SAMPLER_H_


class RandomNumberGeneratorMT19937;
class FlowerDiskSampler:public Sampler
{
public:
	FlowerDiskSampler(int x_start,int x_end,
		int y_start,int y_end,int xs,int ys,int seed);
	~FlowerDiskSampler();
	bool GetNextSample(camera_sample_t* cam_samp);
	void ResetSamplePosition() ;//re init by same seed but different iterations
	virtual size_t GetTotalSampleCount();
	std::shared_ptr<Sampler> GetSubSampler(int i, int count)override;
private:
	int x_pos_,y_pos_,x_pixel_samples_,y_pixel_samples_;
	int sample_pos_;
	RandomNumberGeneratorMT19937 *rng_;
};

#endif

